1. Field of the Invention
This invention relates to the field of communication protocols used to route information in a network, specifically to a method and apparatus for performing Point-to-Point Protocol negotiation efficiently.
2. Description of the Related Art
The Point-to-Point Protocol (PPP) is a data link protocol used by network routers to negotiate configuration parameters for a communication session (i.e., e.g., a particular type of network layer protocol, authentication parameters or the like). Typically, when a first router initiates a connection to establish a session with a second router in the network, the first router does not know the type of network layer protocol and other session configuration parameters supported by the second router. The first router uses PPP to negotiate configuration options for the session with the second router.
Generally, PPP carries information in the fields of standard data link protocol frames, for example, the ‘I’ field of high-level data link control (HDLC) protocol frame. The current implementation of PPP consists of two procedures, Link Control Protocol (LCP) and Network Control Protocol (NCP). LCP is used to configure the links (e.g., establishing authentication). NCP is used to negotiate options and parameters that will be used by layer-three network protocol (i.e., e.g., compression, IP addresses and the like). PPP encapsulates network layer protocol data unit (PDU) and carries the PDU in the ‘I’ field of HDLC type frame. PPP negotiation can include several negotiation cycles before the options for a connection are configured. These negotiation cycles can be a significant user perceived delays especially, in the case of a slow link (e.g., cell phone data connection) the round trip packet time can be over 600–800 ms. The negotiation time can be a significant percentage of the total time a user stays connected in slow link connections.
FIG. 1 illustrates an example of current implementation of PPP negotiations in a network 100. Network 100 includes two routers, routers 110 and 120. Routers 110 and 120 are coupled via a link 105. Router 110 initiates a session with router 120. Initially, router 110 assembles a configuration request packet 130 that will be sent to router 120. Configuration request packet 130 includes a packet ID 111 and session related options, OPT-1, OPT-2, OPT-3 and OPT-4. These options can define various sessions related parameters (i.e., e.g., packet size, authentication or the like). For illustration purposes, the values of session related options for OPT-1 is A, for OPT-2 is B, for OPT-3 is C and for OPT-4 is D. Similarly, router 120 establishes configurations with router 110. Router 120 assembles a configuration request packet 140 that will be sent to router 110. Configuration request packet 140 includes a packet ID 121 and session related options, OPT-1, OPT-2 and OPT-3. These options can define various sessions related parameters (i.e., e.g., packet size, authentication or the like). For illustration purposes, the values of session related options for OPT-1 is X, for OPT-2 is Y and for OPT-3 is Z.
Router 110 sends configuration request packet 130 to router 120 and router 120 sends configuration request packet 140 to router 110. Router 110 receives configuration request packet 140 and determines that the requested options in configuration request packet 140 are acceptable and assembles a configuration-ACK packet 150. Configuration-ACK packet 150 includes the packet ID of configuration request packet 140, packet ID 121, and an ACK for options OPT-1, OPT-2 and OPT-3. Router 110 sends configuration-ACK packet 150 to router 120. Upon receiving configuration request packet 130, router 120 determines that option OPT-1 is not a supported option and assembles a configuration reject packet 160. Configuration reject packet 160 identifies the packet ID of configuration request packet 130, packet ID 111, and the option that is rejected, OPT-1. Router 120 sends configuration reject packet 160 to router 110.
Upon receiving configuration-reject packet 160, router 110 assembles another configuration request packet 170. Configuration request packet 170 includes a packet ID 112 and remaining options, OPT-2, OPT-3 and OPT-4. When router 120 receives configuration request packet 170, router 120 determines that the value of OPT-3 is not acceptable. Router 120 assembles a configuration-NAK packet 180. A configuration-NAK packet is used to indicate that an option is accepted, but that the value of the option is not supported by the router receiving the request (e.g., router 120). Configuration-NAK packet 180 includes the packet ID of configuration request packet 150 (packet ID 112) and NAK for OPT-3 with a suggested value ‘E’ for OPT-3. Router 120 sends configuration-NAK packet 180 to router 110.
When router 110 receives configuration-NAK packet 180, router 110 assembles a configuration request packet 190 with a packet ID 113 and value ‘E’ for OPT-3. Router 110 then sends configuration request packet 190 to router 120. Router 120 receives configuration request packet 190 and determines that the requested options in configuration request packet 190 are acceptable and assembles a configuration-ACK packet 195. Configuration-ACK packet 195 includes the packet ID of configuration request packet 190, packet ID 113, and an ACK for options OPT-2, OPT-3 and OPT-4. Router 120 sends configuration-ACK packet 195 to router 110. The PPP negotiation ends and the next layer of protocol proceeds with communication session. When router 110 does not accept the options in configuration request packet 140, router 110 follows similar process of negotiation to establish acceptable session parameters for router 120.
During PPP negotiations, each configuration packet travels through link 105 at a speed allowable by the available bandwidth of link 105. In slow link connections (e.g., cell phone data connection), the user information carried at the network layer during a session is often carried in fewer packets than the number of packets used to negotiate the session. A method and apparatus that reduces the time required for the negotiation of a PPP connection is therefore needed.